namespace AndyPike.Unfuddle.Contracts
{
    /// <summary>
    /// Provides a marker interface to supply intent for entity classes
    /// </summary>
    public interface IEntity
    {
        /// <summary>
        /// Validates the entity and throws an exception if a property is invalid for the provided senario
        /// </summary>
        /// <param name="context">The entity validation rule to use when checking property values</param>
        void Validate(EntityValidationContext context);    
    }
}